-- 加载lua-engine
J = {}
J.Runtime = require("jass.runtime")
J.Console = require("jass.console")
J.Debug = require("jass.debug")
J.Common = require("jass.common")
J.Globals = require("jass.globals")
J.Slk = require("jass.slk")
J.Japi = require("jass.japi")
J.Hook = require("jass.hook")
J.handleRef = function(h) J.Debug["handle_ref"](h) end
J.handleUnRef = function(h) J.Debug["handle_unref"](h) end
J.handleMax = function() return J.Debug["handlemax"]() end
J.handleDef = function(...) return J.Debug["handledef"](...) end
J.AbilityId = J.Common["AbilityId"]
J.AbilityId2String = J.Common["AbilityId2String"]
J.AddHeroXP = J.Common["AddHeroXP"]
J.AddIndicator = J.Common["AddIndicator"]
J.AddItemToAllStock = J.Common["AddItemToAllStock"]
J.AddItemToStock = J.Common["AddItemToStock"]
J.AddLightning = J.Common["AddLightning"]
J.AddLightningEx = J.Common["AddLightningEx"]
J.AddPlayerTechResearched = J.Common["AddPlayerTechResearched"]
J.AddResourceAmount = J.Common["AddResourceAmount"]
J.AddSpecialEffect = J.Common["AddSpecialEffect"]
J.AddSpecialEffectLoc = J.Common["AddSpecialEffectLoc"]
J.AddSpecialEffectTarget = J.Common["AddSpecialEffectTarget"]
J.AddSpellEffect = J.Common["AddSpellEffect"]
J.AddSpellEffectById = J.Common["AddSpellEffectById"]
J.AddSpellEffectByIdLoc = J.Common["AddSpellEffectByIdLoc"]
J.AddSpellEffectLoc = J.Common["AddSpellEffectLoc"]
J.AddSpellEffectTarget = J.Common["AddSpellEffectTarget"]
J.AddSpellEffectTargetById = J.Common["AddSpellEffectTargetById"]
J.AddUnitAnimationProperties = J.Common["AddUnitAnimationProperties"]
J.AddUnitToAllStock = J.Common["AddUnitToAllStock"]
J.AddUnitToStock = J.Common["AddUnitToStock"]
J.AddWeatherEffect = J.Common["AddWeatherEffect"]
J.AdjustCameraField = J.Common["AdjustCameraField"]
J.AttachSoundToUnit = J.Common["AttachSoundToUnit"]
J.CachePlayerHeroData = J.Common["CachePlayerHeroData"]
J.CameraSetSmoothingFactor = J.Common["CameraSetSmoothingFactor"]
J.CameraSetSourceNoise = J.Common["CameraSetSourceNoise"]
J.CameraSetSourceNoiseEx = J.Common["CameraSetSourceNoiseEx"]
J.CameraSetTargetNoise = J.Common["CameraSetTargetNoise"]
J.CameraSetTargetNoiseEx = J.Common["CameraSetTargetNoiseEx"]
J.CameraSetupApply = J.Common["CameraSetupApply"]
J.CameraSetupApplyForceDuration = J.Common["CameraSetupApplyForceDuration"]
J.CameraSetupApplyForceDurationWithZ = J.Common["CameraSetupApplyForceDurationWithZ"]
J.CameraSetupApplyWithZ = J.Common["CameraSetupApplyWithZ"]
J.CameraSetupGetDestPositionLoc = J.Common["CameraSetupGetDestPositionLoc"]
J.CameraSetupGetDestPositionX = J.Common["CameraSetupGetDestPositionX"]
J.CameraSetupGetDestPositionY = J.Common["CameraSetupGetDestPositionY"]
J.CameraSetupGetField = J.Common["CameraSetupGetField"]
J.CameraSetupSetDestPosition = J.Common["CameraSetupSetDestPosition"]
J.CameraSetupSetField = J.Common["CameraSetupSetField"]
J.ChangeLevel = J.Common["ChangeLevel"]
J.Cheat = J.Common["Cheat"]
J.ChooseRandomCreep = J.Common["ChooseRandomCreep"]
J.ChooseRandomItem = J.Common["ChooseRandomItem"]
J.ChooseRandomItemEx = J.Common["ChooseRandomItemEx"]
J.ChooseRandomNPBuilding = J.Common["ChooseRandomNPBuilding"]
J.ClearMapMusic = J.Common["ClearMapMusic"]
J.ClearSelection = J.Common["ClearSelection"]
J.ClearTextMessages = J.Common["ClearTextMessages"]
J.CommandAI = J.Common["CommandAI"]
J.Condition = J.Common["Condition"]
J.ConvertAIDifficulty = J.Common["ConvertAIDifficulty"]
J.ConvertAllianceType = J.Common["ConvertAllianceType"]
J.ConvertAttackType = J.Common["ConvertAttackType"]
J.ConvertBlendMode = J.Common["ConvertBlendMode"]
J.ConvertCameraField = J.Common["ConvertCameraField"]
J.ConvertDamageType = J.Common["ConvertDamageType"]
J.ConvertDialogEvent = J.Common["ConvertDialogEvent"]
J.ConvertEffectType = J.Common["ConvertEffectType"]
J.ConvertFGameState = J.Common["ConvertFGameState"]
J.ConvertFogState = J.Common["ConvertFogState"]
J.ConvertGameDifficulty = J.Common["ConvertGameDifficulty"]
J.ConvertGameEvent = J.Common["ConvertGameEvent"]
J.ConvertGameSpeed = J.Common["ConvertGameSpeed"]
J.ConvertGameType = J.Common["ConvertGameType"]
J.ConvertIGameState = J.Common["ConvertIGameState"]
J.ConvertItemType = J.Common["ConvertItemType"]
J.ConvertLimitOp = J.Common["ConvertLimitOp"]
J.ConvertMapControl = J.Common["ConvertMapControl"]
J.ConvertMapDensity = J.Common["ConvertMapDensity"]
J.ConvertMapFlag = J.Common["ConvertMapFlag"]
J.ConvertMapSetting = J.Common["ConvertMapSetting"]
J.ConvertMapVisibility = J.Common["ConvertMapVisibility"]
J.ConvertPathingType = J.Common["ConvertPathingType"]
J.ConvertPlacement = J.Common["ConvertPlacement"]
J.ConvertPlayerColor = J.Common["ConvertPlayerColor"]
J.ConvertPlayerEvent = J.Common["ConvertPlayerEvent"]
J.ConvertPlayerGameResult = J.Common["ConvertPlayerGameResult"]
J.ConvertPlayerScore = J.Common["ConvertPlayerScore"]
J.ConvertPlayerSlotState = J.Common["ConvertPlayerSlotState"]
J.ConvertPlayerState = J.Common["ConvertPlayerState"]
J.ConvertPlayerUnitEvent = J.Common["ConvertPlayerUnitEvent"]
J.ConvertRace = J.Common["ConvertRace"]
J.ConvertRacePref = J.Common["ConvertRacePref"]
J.ConvertRarityControl = J.Common["ConvertRarityControl"]
J.ConvertSoundType = J.Common["ConvertSoundType"]
J.ConvertStartLocPrio = J.Common["ConvertStartLocPrio"]
J.ConvertTexMapFlags = J.Common["ConvertTexMapFlags"]
J.ConvertUnitEvent = J.Common["ConvertUnitEvent"]
J.ConvertUnitState = J.Common["ConvertUnitState"]
J.ConvertUnitType = J.Common["ConvertUnitType"]
J.ConvertVersion = J.Common["ConvertVersion"]
J.ConvertVolumeGroup = J.Common["ConvertVolumeGroup"]
J.ConvertWeaponType = J.Common["ConvertWeaponType"]
J.ConvertWidgetEvent = J.Common["ConvertWidgetEvent"]
J.CopySaveGame = J.Common["CopySaveGame"]
J.CreateBlightedGoldmine = J.Common["CreateBlightedGoldmine"]
J.CreateCameraSetup = J.Common["CreateCameraSetup"]
J.CreateCorpse = J.Common["CreateCorpse"]
J.CreateDeadDestructable = J.Common["CreateDeadDestructable"]
J.CreateDeadDestructableZ = J.Common["CreateDeadDestructableZ"]
J.CreateDefeatCondition = J.Common["CreateDefeatCondition"]
J.CreateDestructable = J.Common["CreateDestructable"]
J.CreateDestructableZ = J.Common["CreateDestructableZ"]
J.CreateFogModifierRadius = J.Common["CreateFogModifierRadius"]
J.CreateFogModifierRadiusLoc = J.Common["CreateFogModifierRadiusLoc"]
J.CreateFogModifierRect = J.Common["CreateFogModifierRect"]
J.CreateForce = J.Common["CreateForce"]
J.CreateGroup = J.Common["CreateGroup"]
J.CreateImage = J.Common["CreateImage"]
J.CreateItem = J.Common["CreateItem"]
J.CreateItemPool = J.Common["CreateItemPool"]
J.CreateLeaderboard = J.Common["CreateLeaderboard"]
J.CreateMIDISound = J.Common["CreateMIDISound"]
J.CreateMultiboard = J.Common["CreateMultiboard"]
J.CreateQuest = J.Common["CreateQuest"]
J.CreateRegion = J.Common["CreateRegion"]
J.CreateSound = J.Common["CreateSound"]
J.CreateSoundFilenameWithLabel = J.Common["CreateSoundFilenameWithLabel"]
J.CreateSoundFromLabel = J.Common["CreateSoundFromLabel"]
J.CreateTextTag = J.Common["CreateTextTag"]
J.CreateTimer = J.Common["CreateTimer"]
J.CreateTimerDialog = J.Common["CreateTimerDialog"]
J.CreateTrackable = J.Common["CreateTrackable"]
J.CreateTrigger = J.Common["CreateTrigger"]
J.CreateUbersplat = J.Common["CreateUbersplat"]
J.CreateUnit = J.Common["CreateUnit"]
J.CreateUnitAtLoc = J.Common["CreateUnitAtLoc"]
J.CreateUnitAtLocByName = J.Common["CreateUnitAtLocByName"]
J.CreateUnitByName = J.Common["CreateUnitByName"]
J.CreateUnitPool = J.Common["CreateUnitPool"]
J.CripplePlayer = J.Common["CripplePlayer"]
J.DecUnitAbilityLevel = J.Common["DecUnitAbilityLevel"]
J.DefeatConditionSetDescription = J.Common["DefeatConditionSetDescription"]
J.DefineStartLocation = J.Common["DefineStartLocation"]
J.DefineStartLocationLoc = J.Common["DefineStartLocationLoc"]
J.Deg2Rad = J.Common["Deg2Rad"]
J.DestroyBoolExpr = J.Common["DestroyBoolExpr"]
J.DestroyCondition = J.Common["DestroyCondition"]
J.DestroyDefeatCondition = J.Common["DestroyDefeatCondition"]
J.DestroyEffect = J.Common["DestroyEffect"]
J.DestroyFilter = J.Common["DestroyFilter"]
J.DestroyFogModifier = J.Common["DestroyFogModifier"]
J.DestroyForce = J.Common["DestroyForce"]
J.DestroyGroup = J.Common["DestroyGroup"]
J.DestroyImage = J.Common["DestroyImage"]
J.DestroyItemPool = J.Common["DestroyItemPool"]
J.DestroyLeaderboard = J.Common["DestroyLeaderboard"]
J.DestroyLightning = J.Common["DestroyLightning"]
J.DestroyMultiboard = J.Common["DestroyMultiboard"]
J.DestroyQuest = J.Common["DestroyQuest"]
J.DestroyTextTag = J.Common["DestroyTextTag"]
J.DestroyTimer = J.Common["DestroyTimer"]
J.DestroyTimerDialog = J.Common["DestroyTimerDialog"]
J.DestroyTrigger = J.Common["DestroyTrigger"]
J.DestroyUbersplat = J.Common["DestroyUbersplat"]
J.DestroyUnitPool = J.Common["DestroyUnitPool"]
J.DestructableRestoreLife = J.Common["DestructableRestoreLife"]
J.DialogAddButton = J.Common["DialogAddButton"]
J.DialogAddQuitButton = J.Common["DialogAddQuitButton"]
J.DialogClear = J.Common["DialogClear"]
J.DialogCreate = J.Common["DialogCreate"]
J.DialogDestroy = J.Common["DialogDestroy"]
J.DialogDisplay = J.Common["DialogDisplay"]
J.DialogSetMessage = J.Common["DialogSetMessage"]
J.DisableRestartMission = J.Common["DisableRestartMission"]
J.DisableTrigger = J.Common["DisableTrigger"]
J.DisplayCineFilter = J.Common["DisplayCineFilter"]
J.DisplayLoadDialog = J.Common["DisplayLoadDialog"]
J.DisplayTextToPlayer = J.Common["DisplayTextToPlayer"]
J.DisplayTimedTextFromPlayer = J.Common["DisplayTimedTextFromPlayer"]
J.DisplayTimedTextToPlayer = J.Common["DisplayTimedTextToPlayer"]
J.DoNotSaveReplay = J.Common["DoNotSaveReplay"]
J.EnableDragSelect = J.Common["EnableDragSelect"]
J.EnableMinimapFilterButtons = J.Common["EnableMinimapFilterButtons"]
J.EnableOcclusion = J.Common["EnableOcclusion"]
J.EnablePreSelect = J.Common["EnablePreSelect"]
J.EnableSelect = J.Common["EnableSelect"]
J.EnableTrigger = J.Common["EnableTrigger"]
J.EnableUserControl = J.Common["EnableUserControl"]
J.EnableUserUI = J.Common["EnableUserUI"]
J.EnableWeatherEffect = J.Common["EnableWeatherEffect"]
J.EnableWorldFogBoundary = J.Common["EnableWorldFogBoundary"]
J.EndCinematicScene = J.Common["EndCinematicScene"]
J.EndGame = J.Common["EndGame"]
J.EndThematicMusic = J.Common["EndThematicMusic"]
J.EnumDestructablesInRect = J.Common["EnumDestructablesInRect"]
J.EnumItemsInRect = J.Common["EnumItemsInRect"]
J.EmptyFunc = function() end
J.ExecuteFunc = J.Common["ExecuteFunc"]
J.Filter = J.Common["Filter"]
J.FinishUbersplat = J.Common["FinishUbersplat"]
J.FirstOfGroup = J.Common["FirstOfGroup"]
J.FlashQuestDialogButton = J.Common["FlashQuestDialogButton"]
J.FlushChildHashtable = J.Common["FlushChildHashtable"]
J.FlushGameCache = J.Common["FlushGameCache"]
J.FlushParentHashtable = J.Common["FlushParentHashtable"]
J.FlushStoredBoolean = J.Common["FlushStoredBoolean"]
J.FlushStoredInteger = J.Common["FlushStoredInteger"]
J.FlushStoredMission = J.Common["FlushStoredMission"]
J.FlushStoredReal = J.Common["FlushStoredReal"]
J.FlushStoredString = J.Common["FlushStoredString"]
J.FlushStoredUnit = J.Common["FlushStoredUnit"]
J.FogEnable = J.Common["FogEnable"]
J.FogMaskEnable = J.Common["FogMaskEnable"]
J.FogModifierStart = J.Common["FogModifierStart"]
J.FogModifierStop = J.Common["FogModifierStop"]
J.ForForce = J.Common["ForForce"]
J.ForGroup = J.Common["ForGroup"]
J.ForceAddPlayer = J.Common["ForceAddPlayer"]
J.ForceCampaignSelectScreen = J.Common["ForceCampaignSelectScreen"]
J.ForceCinematicSubtitles = J.Common["ForceCinematicSubtitles"]
J.ForceClear = J.Common["ForceClear"]
J.ForceEnumAllies = J.Common["ForceEnumAllies"]
J.ForceEnumEnemies = J.Common["ForceEnumEnemies"]
J.ForceEnumPlayers = J.Common["ForceEnumPlayers"]
J.ForceEnumPlayersCounted = J.Common["ForceEnumPlayersCounted"]
J.ForcePlayerStartLocation = J.Common["ForcePlayerStartLocation"]
J.ForceQuestDialogUpdate = J.Common["ForceQuestDialogUpdate"]
J.ForceRemovePlayer = J.Common["ForceRemovePlayer"]
J.ForceUICancel = J.Common["ForceUICancel"]
J.ForceUIKey = J.Common["ForceUIKey"]
J.GetAIDifficulty = J.Common["GetAIDifficulty"]
J.GetAbilityEffect = J.Common["GetAbilityEffect"]
J.GetAbilityEffectById = J.Common["GetAbilityEffectById"]
J.GetAbilitySound = J.Common["GetAbilitySound"]
J.GetAbilitySoundById = J.Common["GetAbilitySoundById"]
J.GetAllyColorFilterState = J.Common["GetAllyColorFilterState"]
J.GetAttacker = J.Common["GetAttacker"]
J.GetBuyingUnit = J.Common["GetBuyingUnit"]
J.GetCameraBoundMaxX = J.Common["GetCameraBoundMaxX"]
J.GetCameraBoundMaxY = J.Common["GetCameraBoundMaxY"]
J.GetCameraBoundMinX = J.Common["GetCameraBoundMinX"]
J.GetCameraBoundMinY = J.Common["GetCameraBoundMinY"]
J.GetCameraEyePositionLoc = J.Common["GetCameraEyePositionLoc"]
J.GetCameraEyePositionX = J.Common["GetCameraEyePositionX"]
J.GetCameraEyePositionY = J.Common["GetCameraEyePositionY"]
J.GetCameraEyePositionZ = J.Common["GetCameraEyePositionZ"]
J.GetCameraField = J.Common["GetCameraField"]
J.GetCameraMargin = J.Common["GetCameraMargin"]
J.GetCameraTargetPositionLoc = J.Common["GetCameraTargetPositionLoc"]
J.GetCameraTargetPositionX = J.Common["GetCameraTargetPositionX"]
J.GetCameraTargetPositionY = J.Common["GetCameraTargetPositionY"]
J.GetCameraTargetPositionZ = J.Common["GetCameraTargetPositionZ"]
J.GetCancelledStructure = J.Common["GetCancelledStructure"]
J.GetChangingUnit = J.Common["GetChangingUnit"]
J.GetChangingUnitPrevOwner = J.Common["GetChangingUnitPrevOwner"]
J.GetClickedButton = J.Common["GetClickedButton"]
J.GetClickedDialog = J.Common["GetClickedDialog"]
J.GetConstructedStructure = J.Common["GetConstructedStructure"]
J.GetConstructingStructure = J.Common["GetConstructingStructure"]
J.GetCreatureDensity = J.Common["GetCreatureDensity"]
J.GetCreepCampFilterState = J.Common["GetCreepCampFilterState"]
J.GetCustomCampaignButtonVisible = J.Common["GetCustomCampaignButtonVisible"]
J.GetDecayingUnit = J.Common["GetDecayingUnit"]
J.GetDefaultDifficulty = J.Common["GetDefaultDifficulty"]
J.GetDestructableLife = J.Common["GetDestructableLife"]
J.GetDestructableMaxLife = J.Common["GetDestructableMaxLife"]
J.GetDestructableName = J.Common["GetDestructableName"]
J.GetDestructableOccluderHeight = J.Common["GetDestructableOccluderHeight"]
J.GetDestructableTypeId = J.Common["GetDestructableTypeId"]
J.GetDestructableX = J.Common["GetDestructableX"]
J.GetDestructableY = J.Common["GetDestructableY"]
J.GetDetectedUnit = J.Common["GetDetectedUnit"]
J.GetDyingUnit = J.Common["GetDyingUnit"]
J.GetEnteringUnit = J.Common["GetEnteringUnit"]
J.GetEnumDestructable = J.Common["GetEnumDestructable"]
J.GetEnumItem = J.Common["GetEnumItem"]
J.GetEnumPlayer = J.Common["GetEnumPlayer"]
J.GetEnumUnit = J.Common["GetEnumUnit"]
J.GetEventDamage = J.Common["GetEventDamage"]
J.GetEventDamageSource = J.Common["GetEventDamageSource"]
J.GetEventDetectingPlayer = J.Common["GetEventDetectingPlayer"]
J.GetEventGameState = J.Common["GetEventGameState"]
J.GetEventPlayerChatString = J.Common["GetEventPlayerChatString"]
J.GetEventPlayerChatStringMatched = J.Common["GetEventPlayerChatStringMatched"]
J.GetEventPlayerState = J.Common["GetEventPlayerState"]
J.GetEventTargetUnit = J.Common["GetEventTargetUnit"]
J.GetEventUnitState = J.Common["GetEventUnitState"]
J.GetExpiredTimer = J.Common["GetExpiredTimer"]
J.GetFilterDestructable = J.Common["GetFilterDestructable"]
J.GetFilterItem = J.Common["GetFilterItem"]
J.GetFilterPlayer = J.Common["GetFilterPlayer"]
J.GetFilterUnit = J.Common["GetFilterUnit"]
J.GetFloatGameState = J.Common["GetFloatGameState"]
J.GetFoodMade = J.Common["GetFoodMade"]
J.GetFoodUsed = J.Common["GetFoodUsed"]
J.GetGameDifficulty = J.Common["GetGameDifficulty"]
J.GetGamePlacement = J.Common["GetGamePlacement"]
J.GetGameSpeed = J.Common["GetGameSpeed"]
J.GetGameTypeSelected = J.Common["GetGameTypeSelected"]
J.GetHandleId = J.Common["GetHandleId"]
J.GetHeroAgi = J.Common["GetHeroAgi"]
J.GetHeroInt = J.Common["GetHeroInt"]
J.GetHeroLevel = J.Common["GetHeroLevel"]
J.GetHeroProperName = J.Common["GetHeroProperName"]
J.GetHeroSkillPoints = J.Common["GetHeroSkillPoints"]
J.GetHeroStr = J.Common["GetHeroStr"]
J.GetHeroXP = J.Common["GetHeroXP"]
J.GetIntegerGameState = J.Common["GetIntegerGameState"]
J.GetIssuedOrderId = J.Common["GetIssuedOrderId"]
J.GetItemCharges = J.Common["GetItemCharges"]
J.GetItemLevel = J.Common["GetItemLevel"]
J.GetItemName = J.Common["GetItemName"]
J.GetItemPlayer = J.Common["GetItemPlayer"]
J.GetItemType = J.Common["GetItemType"]
J.GetItemTypeId = J.Common["GetItemTypeId"]
J.GetItemUserData = J.Common["GetItemUserData"]
J.GetItemX = J.Common["GetItemX"]
J.GetItemY = J.Common["GetItemY"]
J.GetKillingUnit = J.Common["GetKillingUnit"]
J.GetLearnedSkill = J.Common["GetLearnedSkill"]
J.GetLearnedSkillLevel = J.Common["GetLearnedSkillLevel"]
J.GetLearningUnit = J.Common["GetLearningUnit"]
J.GetLeavingUnit = J.Common["GetLeavingUnit"]
J.GetLevelingUnit = J.Common["GetLevelingUnit"]
J.GetLightningColorA = J.Common["GetLightningColorA"]
J.GetLightningColorB = J.Common["GetLightningColorB"]
J.GetLightningColorG = J.Common["GetLightningColorG"]
J.GetLightningColorR = J.Common["GetLightningColorR"]
J.GetLoadedUnit = J.Common["GetLoadedUnit"]
J.GetLocalizedHotkey = J.Common["GetLocalizedHotkey"]
J.GetLocalizedString = J.Common["GetLocalizedString"]
J.GetLocationX = J.Common["GetLocationX"]
J.GetLocationY = J.Common["GetLocationY"]
J.GetLocationZ = J.Common["GetLocationZ"]
J.GetManipulatedItem = J.Common["GetManipulatedItem"]
J.GetManipulatingUnit = J.Common["GetManipulatingUnit"]
J.GetObjectName = J.Common["GetObjectName"]
J.GetOrderPointLoc = J.Common["GetOrderPointLoc"]
J.GetOrderPointX = J.Common["GetOrderPointX"]
J.GetOrderPointY = J.Common["GetOrderPointY"]
J.GetOrderTarget = J.Common["GetOrderTarget"]
J.GetOrderTargetDestructable = J.Common["GetOrderTargetDestructable"]
J.GetOrderTargetItem = J.Common["GetOrderTargetItem"]
J.GetOrderTargetUnit = J.Common["GetOrderTargetUnit"]
J.GetOrderedUnit = J.Common["GetOrderedUnit"]
J.GetOwningPlayer = J.Common["GetOwningPlayer"]
J.GetPlayerAlliance = J.Common["GetPlayerAlliance"]
J.GetPlayerColor = J.Common["GetPlayerColor"]
J.GetPlayerController = J.Common["GetPlayerController"]
J.GetPlayerHandicap = J.Common["GetPlayerHandicap"]
J.GetPlayerHandicapXP = J.Common["GetPlayerHandicapXP"]
J.GetPlayerId = J.Common["GetPlayerId"]
J.GetPlayerName = J.Common["GetPlayerName"]
J.GetPlayerRace = J.Common["GetPlayerRace"]
J.GetPlayerScore = J.Common["GetPlayerScore"]
J.GetPlayerSelectable = J.Common["GetPlayerSelectable"]
J.GetPlayerSlotState = J.Common["GetPlayerSlotState"]
J.GetPlayerStartLocation = J.Common["GetPlayerStartLocation"]
J.GetPlayerState = J.Common["GetPlayerState"]
J.GetPlayerStructureCount = J.Common["GetPlayerStructureCount"]
J.GetPlayerTaxRate = J.Common["GetPlayerTaxRate"]
J.GetPlayerTeam = J.Common["GetPlayerTeam"]
J.GetPlayerTechCount = J.Common["GetPlayerTechCount"]
J.GetPlayerTechMaxAllowed = J.Common["GetPlayerTechMaxAllowed"]
J.GetPlayerTechResearched = J.Common["GetPlayerTechResearched"]
J.GetPlayerTypedUnitCount = J.Common["GetPlayerTypedUnitCount"]
J.GetPlayerUnitCount = J.Common["GetPlayerUnitCount"]
J.GetPlayers = J.Common["GetPlayers"]
J.GetRandomInt = J.Common["GetRandomInt"]
J.GetRandomReal = J.Common["GetRandomReal"]
J.GetRectCenterX = J.Common["GetRectCenterX"]
J.GetRectCenterY = J.Common["GetRectCenterY"]
J.GetRectMaxX = J.Common["GetRectMaxX"]
J.GetRectMaxY = J.Common["GetRectMaxY"]
J.GetRectMinX = J.Common["GetRectMinX"]
J.GetRectMinY = J.Common["GetRectMinY"]
J.GetRescuer = J.Common["GetRescuer"]
J.GetResearched = J.Common["GetResearched"]
J.GetResearchingUnit = J.Common["GetResearchingUnit"]
J.GetResourceAmount = J.Common["GetResourceAmount"]
J.GetResourceDensity = J.Common["GetResourceDensity"]
J.GetRevivableUnit = J.Common["GetRevivableUnit"]
J.GetRevivingUnit = J.Common["GetRevivingUnit"]
J.GetSaveBasicFilename = J.Common["GetSaveBasicFilename"]
J.GetSellingUnit = J.Common["GetSellingUnit"]
J.GetSoldItem = J.Common["GetSoldItem"]
J.GetSoldUnit = J.Common["GetSoldUnit"]
J.GetSoundDuration = J.Common["GetSoundDuration"]
J.GetSoundFileDuration = J.Common["GetSoundFileDuration"]
J.GetSoundIsLoading = J.Common["GetSoundIsLoading"]
J.GetSoundIsPlaying = J.Common["GetSoundIsPlaying"]
J.GetSpellAbility = J.Common["GetSpellAbility"]
J.GetSpellAbilityId = J.Common["GetSpellAbilityId"]
J.GetSpellAbilityUnit = J.Common["GetSpellAbilityUnit"]
J.GetSpellTargetDestructable = J.Common["GetSpellTargetDestructable"]
J.GetSpellTargetItem = J.Common["GetSpellTargetItem"]
J.GetSpellTargetLoc = J.Common["GetSpellTargetLoc"]
J.GetSpellTargetUnit = J.Common["GetSpellTargetUnit"]
J.GetSpellTargetX = J.Common["GetSpellTargetX"]
J.GetSpellTargetY = J.Common["GetSpellTargetY"]
J.GetStartLocPrio = J.Common["GetStartLocPrio"]
J.GetStartLocPrioSlot = J.Common["GetStartLocPrioSlot"]
J.GetStartLocationLoc = J.Common["GetStartLocationLoc"]
J.GetStartLocationX = J.Common["GetStartLocationX"]
J.GetStartLocationY = J.Common["GetStartLocationY"]
J.GetStoredBoolean = J.Common["GetStoredBoolean"]
J.GetStoredInteger = J.Common["GetStoredInteger"]
J.GetStoredReal = J.Common["GetStoredReal"]
J.GetStoredString = J.Common["GetStoredString"]
J.GetSummonedUnit = J.Common["GetSummonedUnit"]
J.GetSummoningUnit = J.Common["GetSummoningUnit"]
J.GetTeams = J.Common["GetTeams"]
J.GetTerrainCliffLevel = J.Common["GetTerrainCliffLevel"]
J.GetTerrainType = J.Common["GetTerrainType"]
J.GetTerrainVariance = J.Common["GetTerrainVariance"]
J.GetTimeOfDayScale = J.Common["GetTimeOfDayScale"]
J.GetTournamentFinishNowPlayer = J.Common["GetTournamentFinishNowPlayer"]
J.GetTournamentFinishNowRule = J.Common["GetTournamentFinishNowRule"]
J.GetTournamentFinishSoonTimeRemaining = J.Common["GetTournamentFinishSoonTimeRemaining"]
J.GetTournamentScore = J.Common["GetTournamentScore"]
J.GetTrainedUnit = J.Common["GetTrainedUnit"]
J.GetTrainedUnitType = J.Common["GetTrainedUnitType"]
J.GetTransportUnit = J.Common["GetTransportUnit"]
J.GetTriggerDestructable = J.Common["GetTriggerDestructable"]
J.GetTriggerEvalCount = J.Common["GetTriggerEvalCount"]
J.GetTriggerEventId = J.Common["GetTriggerEventId"]
J.GetTriggerExecCount = J.Common["GetTriggerExecCount"]
J.GetTriggerPlayer = J.Common["GetTriggerPlayer"]
J.GetTriggerUnit = J.Common["GetTriggerUnit"]
J.GetTriggerWidget = J.Common["GetTriggerWidget"]
J.GetTriggeringRegion = J.Common["GetTriggeringRegion"]
J.GetTriggeringTrackable = J.Common["GetTriggeringTrackable"]
J.GetTriggeringTrigger = J.Common["GetTriggeringTrigger"]
J.GetUnitAbilityLevel = J.Common["GetUnitAbilityLevel"]
J.GetUnitAcquireRange = J.Common["GetUnitAcquireRange"]
J.GetUnitCurrentOrder = J.Common["GetUnitCurrentOrder"]
J.GetUnitDefaultAcquireRange = J.Common["GetUnitDefaultAcquireRange"]
J.GetUnitDefaultFlyHeight = J.Common["GetUnitDefaultFlyHeight"]
J.GetUnitDefaultMoveSpeed = J.Common["GetUnitDefaultMoveSpeed"]
J.GetUnitDefaultPropWindow = J.Common["GetUnitDefaultPropWindow"]
J.GetUnitDefaultTurnSpeed = J.Common["GetUnitDefaultTurnSpeed"]
J.GetUnitFacing = J.Common["GetUnitFacing"]
J.GetUnitFlyHeight = J.Common["GetUnitFlyHeight"]
J.GetUnitFoodMade = J.Common["GetUnitFoodMade"]
J.GetUnitFoodUsed = J.Common["GetUnitFoodUsed"]
J.GetUnitLevel = J.Common["GetUnitLevel"]
J.GetUnitLoc = J.Common["GetUnitLoc"]
J.GetUnitMoveSpeed = J.Common["GetUnitMoveSpeed"]
J.GetUnitName = J.Common["GetUnitName"]
J.GetUnitPointValue = J.Common["GetUnitPointValue"]
J.GetUnitPointValueByType = J.Common["GetUnitPointValueByType"]
J.GetUnitPropWindow = J.Common["GetUnitPropWindow"]
J.GetUnitRace = J.Common["GetUnitRace"]
J.GetUnitRallyDestructable = J.Common["GetUnitRallyDestructable"]
J.GetUnitRallyPoint = J.Common["GetUnitRallyPoint"]
J.GetUnitRallyUnit = J.Common["GetUnitRallyUnit"]
J.GetUnitState = J.Common["GetUnitState"]
J.GetUnitTurnSpeed = J.Common["GetUnitTurnSpeed"]
J.GetUnitTypeId = J.Common["GetUnitTypeId"]
J.GetUnitUserData = J.Common["GetUnitUserData"]
J.GetUnitX = J.Common["GetUnitX"]
J.GetUnitY = J.Common["GetUnitY"]
J.GetWidgetLife = J.Common["GetWidgetLife"]
J.GetWidgetX = J.Common["GetWidgetX"]
J.GetWidgetY = J.Common["GetWidgetY"]
J.GetWinningPlayer = J.Common["GetWinningPlayer"]
J.GetWorldBounds = J.Common["GetWorldBounds"]
J.GroupAddUnit = J.Common["GroupAddUnit"]
J.GroupClear = J.Common["GroupClear"]
J.GroupEnumUnitsInRange = J.Common["GroupEnumUnitsInRange"]
J.GroupEnumUnitsInRangeCounted = J.Common["GroupEnumUnitsInRangeCounted"]
J.GroupEnumUnitsInRangeOfLoc = J.Common["GroupEnumUnitsInRangeOfLoc"]
J.GroupEnumUnitsInRangeOfLocCounted = J.Common["GroupEnumUnitsInRangeOfLocCounted"]
J.GroupEnumUnitsInRect = J.Common["GroupEnumUnitsInRect"]
J.GroupEnumUnitsInRectCounted = J.Common["GroupEnumUnitsInRectCounted"]
J.GroupEnumUnitsOfPlayer = J.Common["GroupEnumUnitsOfPlayer"]
J.GroupEnumUnitsOfType = J.Common["GroupEnumUnitsOfType"]
J.GroupEnumUnitsOfTypeCounted = J.Common["GroupEnumUnitsOfTypeCounted"]
J.GroupEnumUnitsSelected = J.Common["GroupEnumUnitsSelected"]
J.GroupImmediateOrder = J.Common["GroupImmediateOrder"]
J.GroupImmediateOrderById = J.Common["GroupImmediateOrderById"]
J.GroupPointOrder = J.Common["GroupPointOrder"]
J.GroupPointOrderById = J.Common["GroupPointOrderById"]
J.GroupPointOrderByIdLoc = J.Common["GroupPointOrderByIdLoc"]
J.GroupPointOrderLoc = J.Common["GroupPointOrderLoc"]
J.GroupRemoveUnit = J.Common["GroupRemoveUnit"]
J.GroupTargetOrder = J.Common["GroupTargetOrder"]
J.GroupTargetOrderById = J.Common["GroupTargetOrderById"]
J.HaveSavedBoolean = J.Common["HaveSavedBoolean"]
J.HaveSavedHandle = J.Common["HaveSavedHandle"]
J.HaveSavedInteger = J.Common["HaveSavedInteger"]
J.HaveSavedReal = J.Common["HaveSavedReal"]
J.HaveSavedString = J.Common["HaveSavedString"]
J.HaveStoredBoolean = J.Common["HaveStoredBoolean"]
J.HaveStoredInteger = J.Common["HaveStoredInteger"]
J.HaveStoredReal = J.Common["HaveStoredReal"]
J.HaveStoredString = J.Common["HaveStoredString"]
J.HaveStoredUnit = J.Common["HaveStoredUnit"]
J.I2R = J.Common["I2R"]
J.I2S = J.Common["I2S"]
J.IncUnitAbilityLevel = J.Common["IncUnitAbilityLevel"]
J.InitGameCache = J.Common["InitGameCache"]
J.InitHashtable = J.Common["InitHashtable"]
J.IsCineFilterDisplayed = J.Common["IsCineFilterDisplayed"]
J.IsDestructableInvulnerable = J.Common["IsDestructableInvulnerable"]
J.IsFogEnabled = J.Common["IsFogEnabled"]
J.IsFogMaskEnabled = J.Common["IsFogMaskEnabled"]
J.IsFoggedToPlayer = J.Common["IsFoggedToPlayer"]
J.IsGameTypeSupported = J.Common["IsGameTypeSupported"]
J.IsHeroUnitId = J.Common["IsHeroUnitId"]
J.IsItemIdPawnable = J.Common["IsItemIdPawnable"]
J.IsItemIdPowerup = J.Common["IsItemIdPowerup"]
J.IsItemIdSellable = J.Common["IsItemIdSellable"]
J.IsItemInvulnerable = J.Common["IsItemInvulnerable"]
J.IsItemOwned = J.Common["IsItemOwned"]
J.IsItemPawnable = J.Common["IsItemPawnable"]
J.IsItemPowerup = J.Common["IsItemPowerup"]
J.IsItemSellable = J.Common["IsItemSellable"]
J.IsItemVisible = J.Common["IsItemVisible"]
J.IsLeaderboardDisplayed = J.Common["IsLeaderboardDisplayed"]
J.IsLocationFoggedToPlayer = J.Common["IsLocationFoggedToPlayer"]
J.IsLocationInRegion = J.Common["IsLocationInRegion"]
J.IsLocationMaskedToPlayer = J.Common["IsLocationMaskedToPlayer"]
J.IsLocationVisibleToPlayer = J.Common["IsLocationVisibleToPlayer"]
J.IsMapFlagSet = J.Common["IsMapFlagSet"]
J.IsMaskedToPlayer = J.Common["IsMaskedToPlayer"]
J.IsMultiboardDisplayed = J.Common["IsMultiboardDisplayed"]
J.IsMultiboardMinimized = J.Common["IsMultiboardMinimized"]
J.IsNoDefeatCheat = J.Common["IsNoDefeatCheat"]
J.IsNoVictoryCheat = J.Common["IsNoVictoryCheat"]
J.IsPlayerAlly = J.Common["IsPlayerAlly"]
J.IsPlayerEnemy = J.Common["IsPlayerEnemy"]
J.IsPlayerInForce = J.Common["IsPlayerInForce"]
J.IsPlayerObserver = J.Common["IsPlayerObserver"]
J.IsPlayerRacePrefSet = J.Common["IsPlayerRacePrefSet"]
J.IsPointBlighted = J.Common["IsPointBlighted"]
J.IsPointInRegion = J.Common["IsPointInRegion"]
J.IsQuestCompleted = J.Common["IsQuestCompleted"]
J.IsQuestDiscovered = J.Common["IsQuestDiscovered"]
J.IsQuestEnabled = J.Common["IsQuestEnabled"]
J.IsQuestFailed = J.Common["IsQuestFailed"]
J.IsQuestItemCompleted = J.Common["IsQuestItemCompleted"]
J.IsQuestRequired = J.Common["IsQuestRequired"]
J.IsSuspendedXP = J.Common["IsSuspendedXP"]
J.IsTerrainPathable = J.Common["IsTerrainPathable"]
J.IsTimerDialogDisplayed = J.Common["IsTimerDialogDisplayed"]
J.IsTriggerEnabled = J.Common["IsTriggerEnabled"]
J.IsTriggerWaitOnSleeps = J.Common["IsTriggerWaitOnSleeps"]
J.IsUnit = J.Common["IsUnit"]
J.IsUnitAlly = J.Common["IsUnitAlly"]
J.IsUnitDetected = J.Common["IsUnitDetected"]
J.IsUnitEnemy = J.Common["IsUnitEnemy"]
J.IsUnitFogged = J.Common["IsUnitFogged"]
J.IsUnitHidden = J.Common["IsUnitHidden"]
J.IsUnitIdType = J.Common["IsUnitIdType"]
J.IsUnitIllusion = J.Common["IsUnitIllusion"]
J.IsUnitInForce = J.Common["IsUnitInForce"]
J.IsUnitInGroup = J.Common["IsUnitInGroup"]
J.IsUnitInRange = J.Common["IsUnitInRange"]
J.IsUnitInRangeLoc = J.Common["IsUnitInRangeLoc"]
J.IsUnitInRangeXY = J.Common["IsUnitInRangeXY"]
J.IsUnitInRegion = J.Common["IsUnitInRegion"]
J.IsUnitInTransport = J.Common["IsUnitInTransport"]
J.IsUnitInvisible = J.Common["IsUnitInvisible"]
J.IsUnitLoaded = J.Common["IsUnitLoaded"]
J.IsUnitMasked = J.Common["IsUnitMasked"]
J.IsUnitOwnedByPlayer = J.Common["IsUnitOwnedByPlayer"]
J.IsUnitPaused = J.Common["IsUnitPaused"]
J.IsUnitRace = J.Common["IsUnitRace"]
J.IsUnitSelected = J.Common["IsUnitSelected"]
J.IsUnitType = J.Common["IsUnitType"]
J.IsUnitVisible = J.Common["IsUnitVisible"]
J.IsVisibleToPlayer = J.Common["IsVisibleToPlayer"]
J.IssueBuildOrder = J.Common["IssueBuildOrder"]
J.IssueBuildOrderById = J.Common["IssueBuildOrderById"]
J.IssueImmediateOrder = J.Common["IssueImmediateOrder"]
J.IssueImmediateOrderById = J.Common["IssueImmediateOrderById"]
J.IssueInstantPointOrder = J.Common["IssueInstantPointOrder"]
J.IssueInstantPointOrderById = J.Common["IssueInstantPointOrderById"]
J.IssueInstantTargetOrder = J.Common["IssueInstantTargetOrder"]
J.IssueInstantTargetOrderById = J.Common["IssueInstantTargetOrderById"]
J.IssueNeutralImmediateOrder = J.Common["IssueNeutralImmediateOrder"]
J.IssueNeutralImmediateOrderById = J.Common["IssueNeutralImmediateOrderById"]
J.IssueNeutralPointOrder = J.Common["IssueNeutralPointOrder"]
J.IssueNeutralPointOrderById = J.Common["IssueNeutralPointOrderById"]
J.IssueNeutralTargetOrder = J.Common["IssueNeutralTargetOrder"]
J.IssueNeutralTargetOrderById = J.Common["IssueNeutralTargetOrderById"]
J.IssuePointOrder = J.Common["IssuePointOrder"]
J.IssuePointOrderById = J.Common["IssuePointOrderById"]
J.IssuePointOrderByIdLoc = J.Common["IssuePointOrderByIdLoc"]
J.IssuePointOrderLoc = J.Common["IssuePointOrderLoc"]
J.IssueTargetOrder = J.Common["IssueTargetOrder"]
J.IssueTargetOrderById = J.Common["IssueTargetOrderById"]
J.ItemPoolAddItemType = J.Common["ItemPoolAddItemType"]
J.ItemPoolRemoveItemType = J.Common["ItemPoolRemoveItemType"]
J.KillDestructable = J.Common["KillDestructable"]
J.KillSoundWhenDone = J.Common["KillSoundWhenDone"]
J.KillUnit = J.Common["KillUnit"]
J.LeaderboardAddItem = J.Common["LeaderboardAddItem"]
J.LeaderboardClear = J.Common["LeaderboardClear"]
J.LeaderboardDisplay = J.Common["LeaderboardDisplay"]
J.LeaderboardGetItemCount = J.Common["LeaderboardGetItemCount"]
J.LeaderboardGetLabelText = J.Common["LeaderboardGetLabelText"]
J.LeaderboardGetPlayerIndex = J.Common["LeaderboardGetPlayerIndex"]
J.LeaderboardHasPlayerItem = J.Common["LeaderboardHasPlayerItem"]
J.LeaderboardRemoveItem = J.Common["LeaderboardRemoveItem"]
J.LeaderboardRemovePlayerItem = J.Common["LeaderboardRemovePlayerItem"]
J.LeaderboardSetItemLabel = J.Common["LeaderboardSetItemLabel"]
J.LeaderboardSetItemLabelColor = J.Common["LeaderboardSetItemLabelColor"]
J.LeaderboardSetItemStyle = J.Common["LeaderboardSetItemStyle"]
J.LeaderboardSetItemValue = J.Common["LeaderboardSetItemValue"]
J.LeaderboardSetItemValueColor = J.Common["LeaderboardSetItemValueColor"]
J.LeaderboardSetLabel = J.Common["LeaderboardSetLabel"]
J.LeaderboardSetLabelColor = J.Common["LeaderboardSetLabelColor"]
J.LeaderboardSetSizeByItemCount = J.Common["LeaderboardSetSizeByItemCount"]
J.LeaderboardSetStyle = J.Common["LeaderboardSetStyle"]
J.LeaderboardSetValueColor = J.Common["LeaderboardSetValueColor"]
J.LeaderboardSortItemsByLabel = J.Common["LeaderboardSortItemsByLabel"]
J.LeaderboardSortItemsByPlayer = J.Common["LeaderboardSortItemsByPlayer"]
J.LeaderboardSortItemsByValue = J.Common["LeaderboardSortItemsByValue"]
J.LoadAbilityHandle = J.Common["LoadAbilityHandle"]
J.LoadBoolean = J.Common["LoadBoolean"]
J.LoadBooleanExprHandle = J.Common["LoadBooleanExprHandle"]
J.LoadButtonHandle = J.Common["LoadButtonHandle"]
J.LoadDefeatConditionHandle = J.Common["LoadDefeatConditionHandle"]
J.LoadDestructableHandle = J.Common["LoadDestructableHandle"]
J.LoadDialogHandle = J.Common["LoadDialogHandle"]
J.LoadEffectHandle = J.Common["LoadEffectHandle"]
J.LoadFogModifierHandle = J.Common["LoadFogModifierHandle"]
J.LoadFogStateHandle = J.Common["LoadFogStateHandle"]
J.LoadForceHandle = J.Common["LoadForceHandle"]
J.LoadGame = J.Common["LoadGame"]
J.LoadGroupHandle = J.Common["LoadGroupHandle"]
J.LoadHashtableHandle = J.Common["LoadHashtableHandle"]
J.LoadImageHandle = J.Common["LoadImageHandle"]
J.LoadInteger = J.Common["LoadInteger"]
J.LoadItemHandle = J.Common["LoadItemHandle"]
J.LoadItemPoolHandle = J.Common["LoadItemPoolHandle"]
J.LoadLeaderboardHandle = J.Common["LoadLeaderboardHandle"]
J.LoadLightningHandle = J.Common["LoadLightningHandle"]
J.LoadLocationHandle = J.Common["LoadLocationHandle"]
J.LoadMultiboardHandle = J.Common["LoadMultiboardHandle"]
J.LoadMultiboardItemHandle = J.Common["LoadMultiboardItemHandle"]
J.LoadPlayerHandle = J.Common["LoadPlayerHandle"]
J.LoadQuestHandle = J.Common["LoadQuestHandle"]
J.LoadQuestItemHandle = J.Common["LoadQuestItemHandle"]
J.LoadReal = J.Common["LoadReal"]
J.LoadRectHandle = J.Common["LoadRectHandle"]
J.LoadRegionHandle = J.Common["LoadRegionHandle"]
J.LoadSoundHandle = J.Common["LoadSoundHandle"]
J.LoadStr = J.Common["LoadStr"]
J.LoadTextTagHandle = J.Common["LoadTextTagHandle"]
J.LoadTimerDialogHandle = J.Common["LoadTimerDialogHandle"]
J.LoadTimerHandle = J.Common["LoadTimerHandle"]
J.LoadTrackableHandle = J.Common["LoadTrackableHandle"]
J.LoadTriggerActionHandle = J.Common["LoadTriggerActionHandle"]
J.LoadTriggerConditionHandle = J.Common["LoadTriggerConditionHandle"]
J.LoadTriggerEventHandle = J.Common["LoadTriggerEventHandle"]
J.LoadTriggerHandle = J.Common["LoadTriggerHandle"]
J.LoadUbersplatHandle = J.Common["LoadUbersplatHandle"]
J.LoadUnitHandle = J.Common["LoadUnitHandle"]
J.LoadUnitPoolHandle = J.Common["LoadUnitPoolHandle"]
J.LoadWidgetHandle = J.Common["LoadWidgetHandle"]
J.Location = J.Common["Location"]
J.MoveLightning = J.Common["MoveLightning"]
J.MoveLightningEx = J.Common["MoveLightningEx"]
J.MoveLocation = J.Common["MoveLocation"]
J.MoveRectTo = J.Common["MoveRectTo"]
J.MoveRectToLoc = J.Common["MoveRectToLoc"]
J.MultiboardClear = J.Common["MultiboardClear"]
J.MultiboardDisplay = J.Common["MultiboardDisplay"]
J.MultiboardGetColumnCount = J.Common["MultiboardGetColumnCount"]
J.MultiboardGetItem = J.Common["MultiboardGetItem"]
J.MultiboardGetRowCount = J.Common["MultiboardGetRowCount"]
J.MultiboardGetTitleText = J.Common["MultiboardGetTitleText"]
J.MultiboardMinimize = J.Common["MultiboardMinimize"]
J.MultiboardReleaseItem = J.Common["MultiboardReleaseItem"]
J.MultiboardSetColumnCount = J.Common["MultiboardSetColumnCount"]
J.MultiboardSetItemIcon = J.Common["MultiboardSetItemIcon"]
J.MultiboardSetItemStyle = J.Common["MultiboardSetItemStyle"]
J.MultiboardSetItemValue = J.Common["MultiboardSetItemValue"]
J.MultiboardSetItemValueColor = J.Common["MultiboardSetItemValueColor"]
J.MultiboardSetItemWidth = J.Common["MultiboardSetItemWidth"]
J.MultiboardSetItemsIcon = J.Common["MultiboardSetItemsIcon"]
J.MultiboardSetItemsStyle = J.Common["MultiboardSetItemsStyle"]
J.MultiboardSetItemsValue = J.Common["MultiboardSetItemsValue"]
J.MultiboardSetItemsValueColor = J.Common["MultiboardSetItemsValueColor"]
J.MultiboardSetItemsWidth = J.Common["MultiboardSetItemsWidth"]
J.MultiboardSetRowCount = J.Common["MultiboardSetRowCount"]
J.MultiboardSetTitleText = J.Common["MultiboardSetTitleText"]
J.MultiboardSetTitleTextColor = J.Common["MultiboardSetTitleTextColor"]
J.MultiboardSuppressDisplay = J.Common["MultiboardSuppressDisplay"]
J.NewSoundEnvironment = J.Common["NewSoundEnvironment"]
J.OrderId = J.Common["OrderId"]
J.OrderId2String = J.Common["OrderId2String"]
J.PanCameraTo = J.Common["PanCameraTo"]
J.PanCameraToTimed = J.Common["PanCameraToTimed"]
J.PanCameraToTimedWithZ = J.Common["PanCameraToTimedWithZ"]
J.PanCameraToWithZ = J.Common["PanCameraToWithZ"]
J.PauseCompAI = J.Common["PauseCompAI"]
J.PauseGame = J.Common["PauseGame"]
J.PauseTimer = J.Common["PauseTimer"]
J.PauseUnit = J.Common["PauseUnit"]
J.PingMinimap = J.Common["PingMinimap"]
J.PingMinimapEx = J.Common["PingMinimapEx"]
J.PlaceRandomItem = J.Common["PlaceRandomItem"]
J.PlaceRandomUnit = J.Common["PlaceRandomUnit"]
J.PlayCinematic = J.Common["PlayCinematic"]
J.PlayModelCinematic = J.Common["PlayModelCinematic"]
J.PlayMusic = J.Common["PlayMusic"]
J.PlayMusicEx = J.Common["PlayMusicEx"]
J.PlayThematicMusic = J.Common["PlayThematicMusic"]
J.PlayThematicMusicEx = J.Common["PlayThematicMusicEx"]
J.Player = J.Common["Player"]
J.PlayerGetLeaderboard = J.Common["PlayerGetLeaderboard"]
J.PlayerSetLeaderboard = J.Common["PlayerSetLeaderboard"]
J.Preload = J.Common["Preload"]
J.PreloadEnd = J.Common["PreloadEnd"]
J.PreloadEndEx = J.Common["PreloadEndEx"]
J.PreloadGenClear = J.Common["PreloadGenClear"]
J.PreloadGenEnd = J.Common["PreloadGenEnd"]
J.PreloadGenStart = J.Common["PreloadGenStart"]
J.PreloadRefresh = J.Common["PreloadRefresh"]
J.PreloadStart = J.Common["PreloadStart"]
J.Preloader = J.Common["Preloader"]
J.QuestCreateItem = J.Common["QuestCreateItem"]
J.QuestItemSetCompleted = J.Common["QuestItemSetCompleted"]
J.QuestItemSetDescription = J.Common["QuestItemSetDescription"]
J.QuestSetCompleted = J.Common["QuestSetCompleted"]
J.QuestSetDescription = J.Common["QuestSetDescription"]
J.QuestSetDiscovered = J.Common["QuestSetDiscovered"]
J.QuestSetEnabled = J.Common["QuestSetEnabled"]
J.QuestSetFailed = J.Common["QuestSetFailed"]
J.QuestSetIconPath = J.Common["QuestSetIconPath"]
J.QuestSetRequired = J.Common["QuestSetRequired"]
J.QuestSetTitle = J.Common["QuestSetTitle"]
J.QueueDestructableAnimation = J.Common["QueueDestructableAnimation"]
J.QueueUnitAnimation = J.Common["QueueUnitAnimation"]
J.Rect = J.Common["Rect"]
J.RectFromLoc = J.Common["RectFromLoc"]
J.RecycleGuardPosition = J.Common["RecycleGuardPosition"]
J.RegionAddCell = J.Common["RegionAddCell"]
J.RegionAddCellAtLoc = J.Common["RegionAddCellAtLoc"]
J.RegionAddRect = J.Common["RegionAddRect"]
J.RegionClearCell = J.Common["RegionClearCell"]
J.RegionClearCellAtLoc = J.Common["RegionClearCellAtLoc"]
J.RegionClearRect = J.Common["RegionClearRect"]
J.RegisterStackedSound = J.Common["RegisterStackedSound"]
J.ReloadGame = J.Common["ReloadGame"]
J.ReloadGameCachesFromDisk = J.Common["ReloadGameCachesFromDisk"]
J.RemoveAllGuardPositions = J.Common["RemoveAllGuardPositions"]
J.RemoveDestructable = J.Common["RemoveDestructable"]
J.RemoveGuardPosition = J.Common["RemoveGuardPosition"]
J.RemoveItem = J.Common["RemoveItem"]
J.RemoveItemFromAllStock = J.Common["RemoveItemFromAllStock"]
J.RemoveItemFromStock = J.Common["RemoveItemFromStock"]
J.RemoveLocation = J.Common["RemoveLocation"]
J.RemovePlayer = J.Common["RemovePlayer"]
J.RemoveRect = J.Common["RemoveRect"]
J.RemoveRegion = J.Common["RemoveRegion"]
J.RemoveSaveDirectory = J.Common["RemoveSaveDirectory"]
J.RemoveSavedBoolean = J.Common["RemoveSavedBoolean"]
J.RemoveSavedHandle = J.Common["RemoveSavedHandle"]
J.RemoveSavedInteger = J.Common["RemoveSavedInteger"]
J.RemoveSavedReal = J.Common["RemoveSavedReal"]
J.RemoveSavedString = J.Common["RemoveSavedString"]
J.RemoveUnit = J.Common["RemoveUnit"]
J.RemoveUnitFromAllStock = J.Common["RemoveUnitFromAllStock"]
J.RemoveUnitFromStock = J.Common["RemoveUnitFromStock"]
J.RemoveWeatherEffect = J.Common["RemoveWeatherEffect"]
J.RenameSaveDirectory = J.Common["RenameSaveDirectory"]
J.ResetTerrainFog = J.Common["ResetTerrainFog"]
J.ResetToGameCamera = J.Common["ResetToGameCamera"]
J.ResetTrigger = J.Common["ResetTrigger"]
J.ResetUbersplat = J.Common["ResetUbersplat"]
J.ResetUnitLookAt = J.Common["ResetUnitLookAt"]
J.RestartGame = J.Common["RestartGame"]
J.RestoreUnit = J.Common["RestoreUnit"]
J.ResumeMusic = J.Common["ResumeMusic"]
J.ResumeTimer = J.Common["ResumeTimer"]
J.ReviveHero = J.Common["ReviveHero"]
J.ReviveHeroLoc = J.Common["ReviveHeroLoc"]
J.SaveAbilityHandle = J.Common["SaveAbilityHandle"]
J.SaveBoolean = J.Common["SaveBoolean"]
J.SaveBooleanExprHandle = J.Common["SaveBooleanExprHandle"]
J.SaveButtonHandle = J.Common["SaveButtonHandle"]
J.SaveDefeatConditionHandle = J.Common["SaveDefeatConditionHandle"]
J.SaveDestructableHandle = J.Common["SaveDestructableHandle"]
J.SaveDialogHandle = J.Common["SaveDialogHandle"]
J.SaveEffectHandle = J.Common["SaveEffectHandle"]
J.SaveFogModifierHandle = J.Common["SaveFogModifierHandle"]
J.SaveFogStateHandle = J.Common["SaveFogStateHandle"]
J.SaveForceHandle = J.Common["SaveForceHandle"]
J.SaveGame = J.Common["SaveGame"]
J.SaveGameCache = J.Common["SaveGameCache"]
J.SaveGameExists = J.Common["SaveGameExists"]
J.SaveGroupHandle = J.Common["SaveGroupHandle"]
J.SaveImageHandle = J.Common["SaveImageHandle"]
J.SaveInteger = J.Common["SaveInteger"]
J.SaveItemHandle = J.Common["SaveItemHandle"]
J.SaveItemPoolHandle = J.Common["SaveItemPoolHandle"]
J.SaveLeaderboardHandle = J.Common["SaveLeaderboardHandle"]
J.SaveLightningHandle = J.Common["SaveLightningHandle"]
J.SaveLocationHandle = J.Common["SaveLocationHandle"]
J.SaveMultiboardHandle = J.Common["SaveMultiboardHandle"]
J.SaveMultiboardItemHandle = J.Common["SaveMultiboardItemHandle"]
J.SavePlayerHandle = J.Common["SavePlayerHandle"]
J.SaveQuestHandle = J.Common["SaveQuestHandle"]
J.SaveQuestItemHandle = J.Common["SaveQuestItemHandle"]
J.SaveReal = J.Common["SaveReal"]
J.SaveRectHandle = J.Common["SaveRectHandle"]
J.SaveRegionHandle = J.Common["SaveRegionHandle"]
J.SaveSoundHandle = J.Common["SaveSoundHandle"]
J.SaveStr = J.Common["SaveStr"]
J.SaveTextTagHandle = J.Common["SaveTextTagHandle"]
J.SaveTimerDialogHandle = J.Common["SaveTimerDialogHandle"]
J.SaveTimerHandle = J.Common["SaveTimerHandle"]
J.SaveTrackableHandle = J.Common["SaveTrackableHandle"]
J.SaveTriggerActionHandle = J.Common["SaveTriggerActionHandle"]
J.SaveTriggerConditionHandle = J.Common["SaveTriggerConditionHandle"]
J.SaveTriggerEventHandle = J.Common["SaveTriggerEventHandle"]
J.SaveTriggerHandle = J.Common["SaveTriggerHandle"]
J.SaveUbersplatHandle = J.Common["SaveUbersplatHandle"]
J.SaveUnitHandle = J.Common["SaveUnitHandle"]
J.SaveUnitPoolHandle = J.Common["SaveUnitPoolHandle"]
J.SaveWidgetHandle = J.Common["SaveWidgetHandle"]
J.SelectHeroSkill = J.Common["SelectHeroSkill"]
J.SelectUnit = J.Common["SelectUnit"]
J.SetAllItemTypeSlots = J.Common["SetAllItemTypeSlots"]
J.SetAllUnitTypeSlots = J.Common["SetAllUnitTypeSlots"]
J.SetAllyColorFilterState = J.Common["SetAllyColorFilterState"]
J.SetAltMinimapIcon = J.Common["SetAltMinimapIcon"]
J.SetBlight = J.Common["SetBlight"]
J.SetBlightLoc = J.Common["SetBlightLoc"]
J.SetBlightPoint = J.Common["SetBlightPoint"]
J.SetBlightRect = J.Common["SetBlightRect"]
J.SetCameraBounds = J.Common["SetCameraBounds"]
J.SetCameraField = J.Common["SetCameraField"]
J.SetCameraOrientController = J.Common["SetCameraOrientController"]
J.SetCameraPosition = J.Common["SetCameraPosition"]
J.SetCameraQuickPosition = J.Common["SetCameraQuickPosition"]
J.SetCameraRotateMode = J.Common["SetCameraRotateMode"]
J.SetCameraTargetController = J.Common["SetCameraTargetController"]
J.SetCampaignAvailable = J.Common["SetCampaignAvailable"]
J.SetCampaignMenuRace = J.Common["SetCampaignMenuRace"]
J.SetCampaignMenuRaceEx = J.Common["SetCampaignMenuRaceEx"]
J.SetCineFilterBlendMode = J.Common["SetCineFilterBlendMode"]
J.SetCineFilterDuration = J.Common["SetCineFilterDuration"]
J.SetCineFilterEndColor = J.Common["SetCineFilterEndColor"]
J.SetCineFilterEndUV = J.Common["SetCineFilterEndUV"]
J.SetCineFilterStartColor = J.Common["SetCineFilterStartColor"]
J.SetCineFilterStartUV = J.Common["SetCineFilterStartUV"]
J.SetCineFilterTexMapFlags = J.Common["SetCineFilterTexMapFlags"]
J.SetCineFilterTexture = J.Common["SetCineFilterTexture"]
J.SetCinematicCamera = J.Common["SetCinematicCamera"]
J.SetCinematicScene = J.Common["SetCinematicScene"]
J.SetCreatureDensity = J.Common["SetCreatureDensity"]
J.SetCreepCampFilterState = J.Common["SetCreepCampFilterState"]
J.SetCustomCampaignButtonVisible = J.Common["SetCustomCampaignButtonVisible"]
J.SetDayNightModels = J.Common["SetDayNightModels"]
J.SetDefaultDifficulty = J.Common["SetDefaultDifficulty"]
J.SetDestructableAnimation = J.Common["SetDestructableAnimation"]
J.SetDestructableAnimationSpeed = J.Common["SetDestructableAnimationSpeed"]
J.SetDestructableInvulnerable = J.Common["SetDestructableInvulnerable"]
J.SetDestructableLife = J.Common["SetDestructableLife"]
J.SetDestructableMaxLife = J.Common["SetDestructableMaxLife"]
J.SetDestructableOccluderHeight = J.Common["SetDestructableOccluderHeight"]
J.SetDoodadAnimation = J.Common["SetDoodadAnimation"]
J.SetDoodadAnimationRect = J.Common["SetDoodadAnimationRect"]
J.SetEdCinematicAvailable = J.Common["SetEdCinematicAvailable"]
J.SetFloatGameState = J.Common["SetFloatGameState"]
J.SetFogStateRadius = J.Common["SetFogStateRadius"]
J.SetFogStateRadiusLoc = J.Common["SetFogStateRadiusLoc"]
J.SetFogStateRect = J.Common["SetFogStateRect"]
J.SetGameDifficulty = J.Common["SetGameDifficulty"]
J.SetGamePlacement = J.Common["SetGamePlacement"]
J.SetGameSpeed = J.Common["SetGameSpeed"]
J.SetGameTypeSupported = J.Common["SetGameTypeSupported"]
J.SetHeroAgi = J.Common["SetHeroAgi"]
J.SetHeroInt = J.Common["SetHeroInt"]
J.SetHeroLevel = J.Common["SetHeroLevel"]
J.SetHeroStr = J.Common["SetHeroStr"]
J.SetHeroXP = J.Common["SetHeroXP"]
J.SetImageAboveWater = J.Common["SetImageAboveWater"]
J.SetImageColor = J.Common["SetImageColor"]
J.SetImageConstantHeight = J.Common["SetImageConstantHeight"]
J.SetImagePosition = J.Common["SetImagePosition"]
J.SetImageRender = J.Common["SetImageRender"]
J.SetImageRenderAlways = J.Common["SetImageRenderAlways"]
J.SetImageType = J.Common["SetImageType"]
J.SetIntegerGameState = J.Common["SetIntegerGameState"]
J.SetIntroShotModel = J.Common["SetIntroShotModel"]
J.SetIntroShotText = J.Common["SetIntroShotText"]
J.SetItemCharges = J.Common["SetItemCharges"]
J.SetItemDropID = J.Common["SetItemDropID"]
J.SetItemDropOnDeath = J.Common["SetItemDropOnDeath"]
J.SetItemDroppable = J.Common["SetItemDroppable"]
J.SetItemInvulnerable = J.Common["SetItemInvulnerable"]
J.SetItemPawnable = J.Common["SetItemPawnable"]
J.SetItemPlayer = J.Common["SetItemPlayer"]
J.SetItemPosition = J.Common["SetItemPosition"]
J.SetItemTypeSlots = J.Common["SetItemTypeSlots"]
J.SetItemUserData = J.Common["SetItemUserData"]
J.SetItemVisible = J.Common["SetItemVisible"]
J.SetLightningColor = J.Common["SetLightningColor"]
J.SetMapDescription = J.Common["SetMapDescription"]
J.SetMapFlag = J.Common["SetMapFlag"]
J.SetMapMusic = J.Common["SetMapMusic"]
J.SetMapName = J.Common["SetMapName"]
J.SetMissionAvailable = J.Common["SetMissionAvailable"]
J.SetMusicPlayPosition = J.Common["SetMusicPlayPosition"]
J.SetMusicVolume = J.Common["SetMusicVolume"]
J.SetOpCinematicAvailable = J.Common["SetOpCinematicAvailable"]
J.SetPlayerAbilityAvailable = J.Common["SetPlayerAbilityAvailable"]
J.SetPlayerAlliance = J.Common["SetPlayerAlliance"]
J.SetPlayerColor = J.Common["SetPlayerColor"]
J.SetPlayerController = J.Common["SetPlayerController"]
J.SetPlayerHandicap = J.Common["SetPlayerHandicap"]
J.SetPlayerHandicapXP = J.Common["SetPlayerHandicapXP"]
J.SetPlayerName = J.Common["SetPlayerName"]
J.SetPlayerOnScoreScreen = J.Common["SetPlayerOnScoreScreen"]
J.SetPlayerRacePreference = J.Common["SetPlayerRacePreference"]
J.SetPlayerRaceSelectable = J.Common["SetPlayerRaceSelectable"]
J.SetPlayerStartLocation = J.Common["SetPlayerStartLocation"]
J.SetPlayerState = J.Common["SetPlayerState"]
J.SetPlayerTaxRate = J.Common["SetPlayerTaxRate"]
J.SetPlayerTeam = J.Common["SetPlayerTeam"]
J.SetPlayerTechMaxAllowed = J.Common["SetPlayerTechMaxAllowed"]
J.SetPlayerTechResearched = J.Common["SetPlayerTechResearched"]
J.SetPlayerUnitsOwner = J.Common["SetPlayerUnitsOwner"]
J.SetPlayers = J.Common["SetPlayers"]
J.SetRandomSeed = J.Common["SetRandomSeed"]
J.SetRect = J.Common["SetRect"]
J.SetRectFromLoc = J.Common["SetRectFromLoc"]
J.SetReservedLocalHeroButtons = J.Common["SetReservedLocalHeroButtons"]
J.SetResourceAmount = J.Common["SetResourceAmount"]
J.SetResourceDensity = J.Common["SetResourceDensity"]
J.SetSkyModel = J.Common["SetSkyModel"]
J.SetSoundChannel = J.Common["SetSoundChannel"]
J.SetSoundConeAngles = J.Common["SetSoundConeAngles"]
J.SetSoundConeOrientation = J.Common["SetSoundConeOrientation"]
J.SetSoundDistanceCutoff = J.Common["SetSoundDistanceCutoff"]
J.SetSoundDistances = J.Common["SetSoundDistances"]
J.SetSoundDuration = J.Common["SetSoundDuration"]
J.SetSoundParamsFromLabel = J.Common["SetSoundParamsFromLabel"]
J.SetSoundPitch = J.Common["SetSoundPitch"]
J.SetSoundPlayPosition = J.Common["SetSoundPlayPosition"]
J.SetSoundPosition = J.Common["SetSoundPosition"]
J.SetSoundVelocity = J.Common["SetSoundVelocity"]
J.SetSoundVolume = J.Common["SetSoundVolume"]
J.SetStartLocPrio = J.Common["SetStartLocPrio"]
J.SetStartLocPrioCount = J.Common["SetStartLocPrioCount"]
J.SetTeams = J.Common["SetTeams"]
J.SetTerrainFog = J.Common["SetTerrainFog"]
J.SetTerrainFogEx = J.Common["SetTerrainFogEx"]
J.SetTerrainPathable = J.Common["SetTerrainPathable"]
J.SetTerrainType = J.Common["SetTerrainType"]
J.SetTextTagAge = J.Common["SetTextTagAge"]
J.SetTextTagColor = J.Common["SetTextTagColor"]
J.SetTextTagFadepoint = J.Common["SetTextTagFadepoint"]
J.SetTextTagLifespan = J.Common["SetTextTagLifespan"]
J.SetTextTagPermanent = J.Common["SetTextTagPermanent"]
J.SetTextTagPos = J.Common["SetTextTagPos"]
J.SetTextTagPosUnit = J.Common["SetTextTagPosUnit"]
J.SetTextTagSuspended = J.Common["SetTextTagSuspended"]
J.SetTextTagText = J.Common["SetTextTagText"]
J.SetTextTagVelocity = J.Common["SetTextTagVelocity"]
J.SetTextTagVisibility = J.Common["SetTextTagVisibility"]
J.SetThematicMusicPlayPosition = J.Common["SetThematicMusicPlayPosition"]
J.SetTimeOfDayScale = J.Common["SetTimeOfDayScale"]
J.SetTutorialCleared = J.Common["SetTutorialCleared"]
J.SetUbersplatRender = J.Common["SetUbersplatRender"]
J.SetUbersplatRenderAlways = J.Common["SetUbersplatRenderAlways"]
J.SetUnitAbilityLevel = J.Common["SetUnitAbilityLevel"]
J.SetUnitAcquireRange = J.Common["SetUnitAcquireRange"]
J.SetUnitAnimation = J.Common["SetUnitAnimation"]
J.SetUnitAnimationByIndex = J.Common["SetUnitAnimationByIndex"]
J.SetUnitAnimationWithRarity = J.Common["SetUnitAnimationWithRarity"]
J.SetUnitBlendTime = J.Common["SetUnitBlendTime"]
J.SetUnitColor = J.Common["SetUnitColor"]
J.SetUnitCreepGuard = J.Common["SetUnitCreepGuard"]
J.SetUnitExploded = J.Common["SetUnitExploded"]
J.SetUnitFacing = J.Common["SetUnitFacing"]
J.SetUnitFacingTimed = J.Common["SetUnitFacingTimed"]
J.SetUnitFlyHeight = J.Common["SetUnitFlyHeight"]
J.SetUnitFog = J.Common["SetUnitFog"]
J.SetUnitInvulnerable = J.Common["SetUnitInvulnerable"]
J.SetUnitLookAt = J.Common["SetUnitLookAt"]
J.SetUnitMoveSpeed = J.Common["SetUnitMoveSpeed"]
J.SetUnitOwner = J.Common["SetUnitOwner"]
J.SetUnitPathing = J.Common["SetUnitPathing"]
J.SetUnitPosition = J.Common["SetUnitPosition"]
J.SetUnitPositionLoc = J.Common["SetUnitPositionLoc"]
J.SetUnitPropWindow = J.Common["SetUnitPropWindow"]
J.SetUnitRescuable = J.Common["SetUnitRescuable"]
J.SetUnitRescueRange = J.Common["SetUnitRescueRange"]
J.SetUnitScale = J.Common["SetUnitScale"]
J.SetUnitState = J.Common["SetUnitState"]
J.SetUnitTimeScale = J.Common["SetUnitTimeScale"]
J.SetUnitTurnSpeed = J.Common["SetUnitTurnSpeed"]
J.SetUnitTypeSlots = J.Common["SetUnitTypeSlots"]
J.SetUnitUseFood = J.Common["SetUnitUseFood"]
J.SetUnitUserData = J.Common["SetUnitUserData"]
J.SetUnitVertexColor = J.Common["SetUnitVertexColor"]
J.SetUnitX = J.Common["SetUnitX"]
J.SetUnitY = J.Common["SetUnitY"]
J.SetWaterBaseColor = J.Common["SetWaterBaseColor"]
J.SetWaterDeforms = J.Common["SetWaterDeforms"]
J.SetWidgetLife = J.Common["SetWidgetLife"]
J.ShowDestructable = J.Common["ShowDestructable"]
J.ShowImage = J.Common["ShowImage"]
J.ShowInterface = J.Common["ShowInterface"]
J.ShowUbersplat = J.Common["ShowUbersplat"]
J.ShowUnit = J.Common["ShowUnit"]
J.SquareRoot = J.Common["SquareRoot"]
J.StartCampaignAI = J.Common["StartCampaignAI"]
J.StartMeleeAI = J.Common["StartMeleeAI"]
J.StartSound = J.Common["StartSound"]
J.StopCamera = J.Common["StopCamera"]
J.StopMusic = J.Common["StopMusic"]
J.StopSound = J.Common["StopSound"]
J.StoreBoolean = J.Common["StoreBoolean"]
J.StoreInteger = J.Common["StoreInteger"]
J.StoreReal = J.Common["StoreReal"]
J.StoreString = J.Common["StoreString"]
J.StoreUnit = J.Common["StoreUnit"]
J.StringCase = J.Common["StringCase"]
J.StringHash = J.Common["StringHash"]
J.StringLength = J.Common["StringLength"]
J.SubString = J.Common["SubString"]
J.SuspendHeroXP = J.Common["SuspendHeroXP"]
J.SuspendTimeOfDay = J.Common["SuspendTimeOfDay"]
J.SyncSelections = J.Common["SyncSelections"]
J.SyncStoredBoolean = J.Common["SyncStoredBoolean"]
J.SyncStoredInteger = J.Common["SyncStoredInteger"]
J.SyncStoredReal = J.Common["SyncStoredReal"]
J.SyncStoredString = J.Common["SyncStoredString"]
J.SyncStoredUnit = J.Common["SyncStoredUnit"]
J.TerrainDeformCrater = J.Common["TerrainDeformCrater"]
J.TerrainDeformRandom = J.Common["TerrainDeformRandom"]
J.TerrainDeformRipple = J.Common["TerrainDeformRipple"]
J.TerrainDeformStop = J.Common["TerrainDeformStop"]
J.TerrainDeformStopAll = J.Common["TerrainDeformStopAll"]
J.TerrainDeformWave = J.Common["TerrainDeformWave"]
J.TimerDialogDisplay = J.Common["TimerDialogDisplay"]
J.TimerDialogSetRealTimeRemaining = J.Common["TimerDialogSetRealTimeRemaining"]
J.TimerDialogSetSpeed = J.Common["TimerDialogSetSpeed"]
J.TimerDialogSetTimeColor = J.Common["TimerDialogSetTimeColor"]
J.TimerDialogSetTitle = J.Common["TimerDialogSetTitle"]
J.TimerDialogSetTitleColor = J.Common["TimerDialogSetTitleColor"]
J.TimerGetElapsed = J.Common["TimerGetElapsed"]
J.TimerGetRemaining = J.Common["TimerGetRemaining"]
J.TimerGetTimeout = J.Common["TimerGetTimeout"]
J.TimerStart = J.Common["TimerStart"]
J.TriggerAddAction = J.Common["TriggerAddAction"]
J.TriggerAddCondition = J.Common["TriggerAddCondition"]
J.TriggerClearActions = J.Common["TriggerClearActions"]
J.TriggerClearConditions = J.Common["TriggerClearConditions"]
J.TriggerEvaluate = J.Common["TriggerEvaluate"]
J.TriggerExecute = J.Common["TriggerExecute"]
J.TriggerExecuteWait = J.Common["TriggerExecuteWait"]
J.TriggerRegisterDeathEvent = J.Common["TriggerRegisterDeathEvent"]
J.TriggerRegisterDialogButtonEvent = J.Common["TriggerRegisterDialogButtonEvent"]
J.TriggerRegisterDialogEvent = J.Common["TriggerRegisterDialogEvent"]
J.TriggerRegisterEnterRegion = J.Common["TriggerRegisterEnterRegion"]
J.TriggerRegisterFilterUnitEvent = J.Common["TriggerRegisterFilterUnitEvent"]
J.TriggerRegisterGameEvent = J.Common["TriggerRegisterGameEvent"]
J.TriggerRegisterGameStateEvent = J.Common["TriggerRegisterGameStateEvent"]
J.TriggerRegisterLeaveRegion = J.Common["TriggerRegisterLeaveRegion"]
J.TriggerRegisterPlayerAllianceChange = J.Common["TriggerRegisterPlayerAllianceChange"]
J.TriggerRegisterPlayerChatEvent = J.Common["TriggerRegisterPlayerChatEvent"]
J.TriggerRegisterPlayerEvent = J.Common["TriggerRegisterPlayerEvent"]
J.TriggerRegisterPlayerStateEvent = J.Common["TriggerRegisterPlayerStateEvent"]
J.TriggerRegisterPlayerUnitEvent = J.Common["TriggerRegisterPlayerUnitEvent"]
J.TriggerRegisterTimerEvent = J.Common["TriggerRegisterTimerEvent"]
J.TriggerRegisterTimerExpireEvent = J.Common["TriggerRegisterTimerExpireEvent"]
J.TriggerRegisterTrackableHitEvent = J.Common["TriggerRegisterTrackableHitEvent"]
J.TriggerRegisterTrackableTrackEvent = J.Common["TriggerRegisterTrackableTrackEvent"]
J.TriggerRegisterUnitEvent = J.Common["TriggerRegisterUnitEvent"]
J.TriggerRegisterUnitInRange = J.Common["TriggerRegisterUnitInRange"]
J.TriggerRegisterUnitStateEvent = J.Common["TriggerRegisterUnitStateEvent"]
J.TriggerRegisterVariableEvent = J.Common["TriggerRegisterVariableEvent"]
J.TriggerRemoveAction = J.Common["TriggerRemoveAction"]
J.TriggerRemoveCondition = J.Common["TriggerRemoveCondition"]
J.TriggerSleepAction = J.Common["TriggerSleepAction"]
J.TriggerSyncReady = J.Common["TriggerSyncReady"]
J.TriggerSyncStart = J.Common["TriggerSyncStart"]
J.TriggerWaitForSound = J.Common["TriggerWaitForSound"]
J.TriggerWaitOnSleeps = J.Common["TriggerWaitOnSleeps"]
J.UnitAddAbility = J.Common["UnitAddAbility"]
J.UnitAddIndicator = J.Common["UnitAddIndicator"]
J.UnitAddItem = J.Common["UnitAddItem"]
J.UnitAddItemById = J.Common["UnitAddItemById"]
J.UnitAddItemToSlotById = J.Common["UnitAddItemToSlotById"]
J.UnitAddSleep = J.Common["UnitAddSleep"]
J.UnitAddSleepPerm = J.Common["UnitAddSleepPerm"]
J.UnitAddType = J.Common["UnitAddType"]
J.UnitApplyTimedLife = J.Common["UnitApplyTimedLife"]
J.UnitCanSleep = J.Common["UnitCanSleep"]
J.UnitCanSleepPerm = J.Common["UnitCanSleepPerm"]
J.UnitCountBuffsEx = J.Common["UnitCountBuffsEx"]
J.UnitDamagePoint = J.Common["UnitDamagePoint"]
J.UnitDamageTarget = J.Common["UnitDamageTarget"]
J.UnitDropItemPoint = J.Common["UnitDropItemPoint"]
J.UnitDropItemSlot = J.Common["UnitDropItemSlot"]
J.UnitDropItemTarget = J.Common["UnitDropItemTarget"]
J.UnitHasBuffsEx = J.Common["UnitHasBuffsEx"]
J.UnitHasItem = J.Common["UnitHasItem"]
J.UnitId = J.Common["UnitId"]
J.UnitId2String = J.Common["UnitId2String"]
J.UnitIgnoreAlarm = J.Common["UnitIgnoreAlarm"]
J.UnitIgnoreAlarmToggled = J.Common["UnitIgnoreAlarmToggled"]
J.UnitInventorySize = J.Common["UnitInventorySize"]
J.UnitIsSleeping = J.Common["UnitIsSleeping"]
J.UnitItemInSlot = J.Common["UnitItemInSlot"]
J.UnitMakeAbilityPermanent = J.Common["UnitMakeAbilityPermanent"]
J.UnitModifySkillPoints = J.Common["UnitModifySkillPoints"]
J.UnitPauseTimedLife = J.Common["UnitPauseTimedLife"]
J.UnitPoolAddUnitType = J.Common["UnitPoolAddUnitType"]
J.UnitPoolRemoveUnitType = J.Common["UnitPoolRemoveUnitType"]
J.UnitRemoveAbility = J.Common["UnitRemoveAbility"]
J.UnitRemoveBuffs = J.Common["UnitRemoveBuffs"]
J.UnitRemoveBuffsEx = J.Common["UnitRemoveBuffsEx"]
J.UnitRemoveItem = J.Common["UnitRemoveItem"]
J.UnitRemoveItemFromSlot = J.Common["UnitRemoveItemFromSlot"]
J.UnitRemoveType = J.Common["UnitRemoveType"]
J.UnitResetCooldown = J.Common["UnitResetCooldown"]
J.UnitSetConstructionProgress = J.Common["UnitSetConstructionProgress"]
J.UnitSetUpgradeProgress = J.Common["UnitSetUpgradeProgress"]
J.UnitSetUsesAltIcon = J.Common["UnitSetUsesAltIcon"]
J.UnitShareVision = J.Common["UnitShareVision"]
J.UnitStripHeroLevel = J.Common["UnitStripHeroLevel"]
J.UnitSuspendDecay = J.Common["UnitSuspendDecay"]
J.UnitUseItem = J.Common["UnitUseItem"]
J.UnitUseItemPoint = J.Common["UnitUseItemPoint"]
J.UnitUseItemTarget = J.Common["UnitUseItemTarget"]
J.UnitWakeUp = J.Common["UnitWakeUp"]
J.UnregisterStackedSound = J.Common["UnregisterStackedSound"]
J.VersionCompatible = J.Common["VersionCompatible"]
J.VersionGet = J.Common["VersionGet"]
J.VersionSupported = J.Common["VersionSupported"]
J.VolumeGroupReset = J.Common["VolumeGroupReset"]
J.VolumeGroupSetVolume = J.Common["VolumeGroupSetVolume"]
J.WaygateActivate = J.Common["WaygateActivate"]
J.WaygateGetDestinationX = J.Common["WaygateGetDestinationX"]
J.WaygateGetDestinationY = J.Common["WaygateGetDestinationY"]
J.WaygateIsActive = J.Common["WaygateIsActive"]
J.WaygateSetDestination = J.Common["WaygateSetDestination"]

J.JapiEx = {
    ["_Roulette"] = nil,
    ["_RouletteWait"] = false,
    ["_IsWideScreen"] = false,
    ["_FrameTagIndex"] = 0,
    ["_DzLoadToc"] = {},
    ["_Z"] = {},
    ["_ZI"] = 32,
    ["_FrameBlackTop"] = 0.020,
    ["_FrameBlackBottom"] = 0.130,
    ["_FrameInnerHeight"] = 0.45,
    ["_Refresh"] = nil,
    ["_IsTyping"] = {},
}

math.sin = J.Common["Sin"]
math.cos = J.Common["Cos"]
math.tan = J.Common["Tan"]
math.asin = J.Common["Asin"]
math.acos = J.Common["Acos"]
math.atan = J.Common["Atan2"]

if (J.Common ~= nil) then
    math.random = nil
end

local cc = { c = {}, i = {} }

--- 字符ID转整型ID
---@type fun(idChar:string):number
J.C2I = function(idChar)
    if (idChar == nil or type(idChar) ~= "string") then
        stack(idChar)
        return
    end
    local id = cc.c[idChar]
    if (id == nil) then
        id = ('>I4'):unpack(idChar)
        cc.c[idChar] = id
        cc.i[id] = idChar
    end
    return id
end

--- 整型ID转字符ID
---@type fun(id:number):string
J.I2C = function(id)
    if (id == nil or type(id) ~= "number") then
        stack(id)
        return
    end
    local ic = cc.i[id]
    if (ic == nil) then
        ic = ('>I4'):pack(id)
        cc.i[id] = ic
        cc.c[ic] = id
    end
    return ic
end

--- 中文转码
---@type fun():string
J.N2C = function(...)
    local ns = { ... }
    if (#ns == 0) then
        return ""
    end
    local s = ""
    for _, n in ipairs(ns) do
        must(FRAMEWORK_N2C[n] ~= nil)
        s = s .. FRAMEWORK_N2C[n]
    end
    return s
end

--- 保证
---@type fun(execute:function,fail:function,done:function):boolean
J.Promise = function(execute, fail, done, ...)
    if (type(execute) == "function") then
        local res, e = xpcall(execute, debug.traceback, ...)
        if (res == true) then
            if (type(done) == "function") then
                done()
            end
        else
            print(e)
            if (type(fail) == "function") then
                fail()
            end
        end
    end
end